package br.com.tiespec.model.Modelo;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import br.com.tiespec.model.Enum.SituClienteProjeto;

@Entity
@Table(name="ti_cliente_projeto")
public class ClienteProjeto extends EntidadeGenerica {

	private static final long serialVersionUID = 1166340666979109441L;

	@Column(name="nome_completo",length=255, nullable=false)
	private String nomeCompleto;
	
	@Column(name="nome_curto", length=128, nullable=true)
	private String nomeCurto;
	
	@Column(length=4000, nullable=true)
	private String observacoes;
	
	@Enumerated
	private SituClienteProjeto situacao;
	
	@ManyToOne(fetch=FetchType.LAZY, optional=false)
	@JoinColumn(name="cliente_portal_id")
	private ClientePortal clientePortal;
	
	@OneToMany(fetch=FetchType.LAZY, mappedBy="clienteProjeto")
	private List<Projeto> projetos;
	
	@OneToMany(fetch=FetchType.LAZY, mappedBy="cliente")
	private List<Contato> contatos;
	
	@Override
	public String toJson() {
		return null;
	}

	public String getNomeCompleto() {
		return nomeCompleto;
	}
	
	public void setNomeCompleto(String nomeCompleto) {
		this.nomeCompleto = nomeCompleto;
	}
	
	public List<Projeto> getProjetos() {
		return projetos;
	}
	
	public void setProjetos(List<Projeto> projetos) {
		this.projetos = projetos;
	}
	
	public String getNomeCurto() {
		return nomeCurto;
	}
	
	public void setNomeCurto(String nomeCurto) {
		this.nomeCurto = nomeCurto;
	}
	
	public String getObservacoes() {
		return observacoes;
	}
	
	public void setObservacoes(String observacoes) {
		this.observacoes = observacoes;
	}
	
	public List<Contato> getContatos() {
		return contatos;
	}
	
	public void setContatos(List<Contato> contatos) {
		this.contatos = contatos;
	}
	
	public ClientePortal getClientePortal() {
		return clientePortal;
	}
	
	public void setClientePortal(ClientePortal clientePortal) {
		this.clientePortal = clientePortal;
	}
	
	public SituClienteProjeto getSituacao() {
		return situacao;
	}
	
	public void setSituacao(SituClienteProjeto situacao) {
		this.situacao = situacao;
	}
}